﻿#include <iostream>

using namespace std;

const int N = 10;
#define NUM 18

int main()
{
	// 1. 常量指针  (指针指向的内容是一个常量)

	int a = 8;
	int const * p1 = &a;

	//*p1 = 12;	// 编译报错：常量指针，指向的内容是一个常量，不能改变
	int b = 10;
	p1 = &b;
	cout << *p1 << endl;


	// 2. 指针常量（指针是一个常量，指针不可改变）
	int c = 12;
	int* const p2 = &c;
	
	int d = 10;
	//p2 = &d;	// 编译报错：指针不可改变
	*p2 = 1;

	cout << *p2 << endl;

	int constantValue = 1;

	const int* ptr = &constantValue; // 指向常量的指针

	const int& ref = constantValue; // 常量引⽤

	return 0;
}